/*
 * @Author: hrg
 * @Date: 2024-01-27 14:56:32
 * @LastEditTime: 2024-01-27 15:44:25
 * @FilePath: \study_go\study08_gin\gin_demo_04\main\main.go
 * @Description:各种数据格式的响应
 */
package main

import "github.com/gin-gonic/gin"

// 多种响应方式
func main() {
	r := gin.New()

	// JSON响应
	r.GET("/someJSON", JsonFunc)

	// 结构体响应
	r.GET("/someStruct", StructFunc)

	// XML响应
	r.GET("/someXML", XMLFunc)

	// YAML响应
	r.GET("/someYAML", YAMLFucn)

	r.Run(":9090")

}

// json格式的响应
func JsonFunc(c *gin.Context) {
	c.JSON(200, gin.H{
		"message": "success",
		"status":  200,
	})
}

// 结构体格式响应
func StructFunc(c *gin.Context) {
	var msg struct {
		Name    string
		Message string
		Number  int
	}

	msg.Name = "root"
	msg.Message = "success"
	msg.Number = 200

	c.JSON(200, msg)
}

// XML格式响应
func XMLFunc(c *gin.Context) {
	c.XML(200, gin.H{
		"name": "lili",
	})
}

// YAML响应
func YAMLFucn(c *gin.Context) {
	c.YAML(200, gin.H{
		"name": "胡瑞光",
	})
}
